home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / packer / xpk / xpkrake_v1.3 / xpkrake.doc next >
Text File  |  1995-03-09  |  5KB  |  124 lines

  1.  
  2.                                     RAKE
  3.                          A cruncher of the LZ77 family
  4.                              for the XPK-package
  5.                                 Version 1.3
  6.                      Copyright 1994 by Karsten Dageförde
  7.  
  8.                               Status: FREEWARE
  9.  
  10.  
  11.  
  12.                              License/Disclaimer
  13.                              ------------------
  14.  
  15.    This  library  may  be  freely  distributed, as long as it is kept in its
  16. original,  complete,  and  unmodified  form.  It may NOT be distributed in a
  17. commercial package of any kind without my permission.
  18.  
  19.    This  program  is  distributed  in  the  hope that it will be useful, but
  20. WITHOUT  ANY  WARRANTY; without even the implied warranty of MERCHANTABILITY
  21. or FITNESS FOR A PARTICULAR PURPOSE.
  22.  
  23.  
  24.                                 Installation
  25.                                 ------------
  26.  
  27.     You'll  need  to install the XPK package first to use this library.  The
  28. XPK  package  should  be available on most Bulletin Board Systems, so try to
  29. get it there.
  30.  
  31.     If  you  already have the  XPK package  installed, add  this  library to
  32. your system simply by copying the xpkRAKE.library  to your LIBS:Compressors/
  33. directory, or  if you've got a 68020 (or greater) processor, you should take
  34. the xpkRAKE.library.68020' instead.
  35.  
  36.  
  37.                                 Description
  38.                                 -----------
  39.  
  40.     RAKE is an  XPK packer sublibrary  which  implements a highly  optimized
  41. form  of  the popular  LZ77 compression  algorithm. It  uses  static huffman
  42. coding   for   the  'len'   and  a  three-step  coding  for   the   'offset'
  43. information.  The  major  feature   of this packer  is the  highly optimized
  44. algorithm for tracking down redundant data.
  45.  
  46.  
  47.     RAKE now supports four modes  at  compression.  To speed up  compression
  48. everytime a better match (than the previous) is found  the 'dictionary' size
  49. will be reduced dynamically according to the pack-mode by division ...
  50.  
  51.  0..25  : by 8, 
  52. 26..50  : by 4,
  53. 51..75  : by 2 (using 'lsr.w', of course).
  54. 76..100 : The  full  dictionary  size  of  approx. 20KB  will  be scanned for
  55.           redundant data.
  56.  
  57. -----------------------------------------------------------------------------
  58.  
  59.     IMPORTANT: There is no need to repack files packed  with RAKE V1.0 - V1.2
  60.                (68000 or 68020 version), because RAKE V1.3 is totally
  61.                compatible with older versions  and  also vice versa,  it just
  62.                works faster.
  63.  
  64. -----------------------------------------------------------------------------
  65.  
  66.  
  67.                                  Statistics
  68.                                  ----------
  69.  
  70.     Following  is  a table  briefly listing some  comparative statistics for
  71. NUKE  and  RAKE.  These  were   generated   by   xBench   on   an   A3000/25
  72. with 2MB ChipMem and 4MB FastMem, using the AmigaVision  executable as data.
  73. Note that memory needs don't include  xpkmaster.library's buffers.
  74.  
  75.  
  76.                                                         | Memory usage while
  77. Packer      UComp   Comp    CF     CSpd     USpd        | packing  unpacking
  78. ----------------------------------------------------------------------------
  79. 68020_V1.1 (OLD VERSION)
  80. rake       594712 322872 45.8%    67047   491497        |    256K         0K
  81.  
  82. nuke       594712 326908 45.1%    41472   613105        |    192K         0K
  83.  
  84. 68020_V1.3
  85. rake.100   594712 322932 45.7%    73877   632672        |    256K         0K
  86. rake.75    594712 325028 45.4%    86190   632672        |    256K         0K
  87. rake.50    594712 326948 45.1%    96387   626012        |    256K         0K
  88. rake.25    594712 328848 44.8%   103608   626012        |    256K         0K
  89.  
  90. 68000_V1.3
  91. rake.100   594712 322932 45.7%    72703   499757        |    256K         0K
  92. rake.75    594712 325028 45.4%    84596   499757        |    256K         0K
  93. rake.50    594712 326948 45.1%    94548   495593        |    256K         0K
  94. rake.25    594712 328848 44.8%   101313   495593        |    256K         0K
  95.  
  96.  
  97.  
  98.  
  99.                                   History
  100.                                  ---------
  101.  
  102. Sep-9-94   V1.0 First public release (68000,68020)
  103.  
  104. Sep-14-94  V1.1 BUGFIX: Uncompressable data (or remainder) should not  cause
  105.                         XPKERR_SMALLOUTBUF  but  XPKERR_EXPANSION !
  106.                         (Worst case: OutLen = OutBufLen + 5(<<XPK_MARGIN) :)
  107.  
  108.            V1.2 Not a public release (minor bugfix for xp>K<-handler)
  109.  
  110. Nov-6-94   V1.3 Using bit-field instructions for 68020 version. Pack-routine
  111.                 now fits in 68020 instruction cache.  Further  optimizations
  112.                 done to increase packing & unpacking speed :-). Memory
  113.                 shortage causes XPKERR_EXPANSION => files won't be packed but
  114.                 be saved uncompressed by XFH without aborting with an error.
  115.  
  116.  
  117.                               Contact Address
  118.                               ---------------
  119.  
  120.                         dagefoer@rzcipa03.rz.tu-bs.de
  121.                                      OR
  122.                           dagefoer@ibr.cs.tu-bs.de
  123.  
  124.